// 二次封装axios
import axios from "axios";
let requests = axios.create({
  // baseURL:'http://localhost:8080',
  // baseURL: 'http://localhost:3456',
  // baseURL:'http://123.249.111.34:899',
  baseURL: 'http://47.98.54.159:3000',
  timeout: 8000
});



// 添加请求拦截器
requests.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么，例如添加认证信息等
    // config.headers['Authorization'] = 'Bearer ' + localStorage.getItem("token"); // 添加请求头
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

const getFilenameFromHeaders = (headers) => {
  const contentDisposition = headers['content-disposition'];

  if (!contentDisposition) {
    return 'download.xlsx';
  }

  console.log("原始Content-Disposition:", contentDisposition);

  // 针对你的格式: attachment; filename=export_1757826689451.xlsx
  const filenameMatch = contentDisposition.match(/filename=([^;]+)/);

  if (filenameMatch && filenameMatch[1]) {
    let filename = filenameMatch[1].trim();

    // 去除可能存在的引号
    if (filename.startsWith('"') && filename.endsWith('"')) {
      filename = filename.slice(1, -1);
    } else if (filename.startsWith("'") && filename.endsWith("'")) {
      filename = filename.slice(1, -1);
    }

    console.log("解析出的文件名:", filename);
    return filename;
  }

  return 'export.xlsx'; // 默认文件名
};

//响应拦截器
requests.interceptors.response.use(
  function (response) {
    console.log("🚀 ~ response:", response)
    if (response.config.responseType === 'blob') {

      let filename = getFilenameFromHeaders(response.headers);

      return {
        fileName: filename,
        data: response.data
      }
    }
    // 对响应数据做点什么
    return response.data;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);



export default requests;